package org.example.controller;

import com.alibaba.cloud.commons.lang.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.example.service.EmpService;
import org.example.systemset_pojo.Employee;
import org.example.uitl.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServlet;
import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/login")

public class EmpController extends HttpServlet {
    @Autowired
    private EmpService employeeService;
    /**
     * 登录接口
     * 支持使用 name 和 password 字段进行登录验证
     */
    @PostMapping("/user")
    public org.example.uitl.Result login(@RequestBody Employee loginRequest) {
        // 获取前端传来的用户名和密码
        String username = loginRequest.getName();
        String password = loginRequest.getPassword();

        // 验证输入是否为空
        if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
            return org.example.uitl.Result.ERROR("工号和密码不能为空");
        }

        // 根据用户名查询员工信息
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Employee::getName, username);
        Employee employee = employeeService.getOne(queryWrapper);

        // 如果未找到员工，返回错误信息
        if (employee == null) {
            return org.example.uitl.Result.ERROR("用户不存在");
        }

        // 验证密码（这里使用明文比较，实际项目中应该使用加密）
        if (!password.equals(employee.getPassword())) {
            return org.example.uitl.Result.ERROR("密码错误");
        }

        // 登录成功，生成token并返回
        Map<String, Object> map = new HashMap<>();
        map.put("token", "generated-token"); // 实际项目中应该生成JWT token
        map.put("employeeId", employee.getEmployeeId());
        map.put("name", employee.getName());

        return Result.OK(map);
    }

    //根据用户名查询员工信息
    @GetMapping("/user/{name}")
    public org.example.uitl.Result getUserByName(@PathVariable String name) {
        // 验证输入是否为空
        if (StringUtils.isBlank(name)) {
            return org.example.uitl.Result.ERROR("用户名不能为空");
        }

        // 根据用户名查询员工信息
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Employee::getName, name);
        Employee employee = employeeService.getOne(queryWrapper);

        // 如果未找到员工，返回错误信息
        if (employee == null) {
            return org.example.uitl.Result.ERROR("用户不存在");
        }

        // 查询成功，返回员工信息
        return Result.OK(employee);
    }




}